﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Onetube.Models.SearchChannel
{
    public class PageInfo
    {
        public int TotalResults { get; set; }

        public int ResultsPerPage { get; set; }
    }

    public class Default
    {
        public string Url { get; set; }
    }

    public class Medium
    {
        public string Url { get; set; }
    }

    public class High
    {
        public string Url { get; set; }
    }

    public class Thumbnails
    {
        public Default Default { get; set; }

        public Medium Medium { get; set; }

        public High High { get; set; }
    }

    public class Snippet
    {
        public string Title { get; set; }

        public string Description { get; set; }

        public string PublishedAt { get; set; }

        public Thumbnails Thumbnails { get; set; }
    }

    public class RelatedPlaylists
    {
        public string Likes { get; set; }

        public string Uploads { get; set; }
    }

    public class ContentDetails
    {
        public RelatedPlaylists RelatedPlaylists { get; set; }

        public string GooglePlusUserId { get; set; }
    }

    public class Statistics
    {
        public string ViewCount { get; set; }

        public string CommentCount { get; set; }

        public string SubscriberCount { get; set; }

        public bool HiddenSubscriberCount { get; set; }

        public string VideoCount { get; set; }
    }

    public class TopicDetails
    {
        public string[] TopicIds { get; set; }
    }

    public class Item
    {
        public string Kind { get; set; }

        public string Etag { get; set; }

        public string Id { get; set; }

        public Snippet Snippet { get; set; }

        public ContentDetails ContentDetails { get; set; }

        public Statistics Statistics { get; set; }

        public TopicDetails TopicDetails { get; set; }
    }
    
    public class SearchChannelResult
    {
        public string Kind { get; set; }

        public string Etag { get; set; }

        public PageInfo PageInfo { get; set; }

        public List<Item> Items { get; set; }
    }
}